home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / (A)Z / (A)Z8.ADF / Esuom / handlerinterface.asm < prev   
Assembly Source File  |  1987-07-14  |  2KB  |  43 lines

  1. * HandlerInterface()
  2. * from RKM Vol I, Pg 3-113 for use with ADD_HANDLER example program
  3. * original code allowed C function as input handler
  4. * too slow, so new code rewrites it in ASM
  5. * Sean Riddle
  6. * OKC ACE BBS (405) 631-9040
  7. * let's see, InputEvent pointer in A0....
  8.  
  9.    CSECT HandlerInterface
  10.  
  11. *  XREF _myhandler               ; don't need, since not used
  12.    XDEF _HandlerInterface
  13.  
  14. _HandlerInterface:
  15.  
  16. *           MOVE.L   A1,-(A7)    ; old code: push data area
  17. *           MOVE.L   A0,-(A7)    ; and InputEvent pointer onto stack,
  18. *           JSR      _myhandler  ; call C function
  19. *           ADDQ     #8,A7       ; fix stack, then exit (RTS)
  20.  
  21.             CMPI.B   #2,4(A0)    ;  IS THIS A RAWMOUSE EVENT?
  22.             BNE      OUTTAHERE   ;  NOPE, LET'S LEAVE IT ALONE
  23.             NEG.W    10(A0)      ;  MAKE OPPOSITE X DIRECTION
  24.             NEG.W    12(A0)      ;  MAKE OPPOSITE Y DIRECTION
  25.             CMPI.W   #$68,6(A0)  ;  LBUTTON DOWN?
  26.             BNE      NOTLBUT     ;  NOPE, TRY RBUTTON
  27.             MOVE.W   #$69,6(A0)  ;  YES, MAKE IT RBUTTON
  28.             BRA      BUTUP       ;  SKIP NEXT TEST (ALWAYS PASSES, HMMM)
  29. NOTLBUT     CMPI.W   #$69,6(A0)  ;  RBUTTON DOWN?
  30.             BNE      BUTUP       ;  NO, TRY LBUTTON UP
  31.             MOVE.W   #$68,6(A0)  ;  YES, MAKE IT LBUTTON
  32. BUTUP       CMPI.W   #$E8,6(A0)  ;  HAS LBUTTON BEEN RELEASED?
  33.             BNE      LBNOTUP     ;  NAH, TEST RBUTTON
  34.             MOVE.W   #$E9,6(A0)  ;  YUP, MAKE IT RBUTTON UP
  35.             BRA      OUTTAHERE   ;  LET'S GO
  36. LBNOTUP     CMPI.W   #$E9,6(A0)  ;  HAS RBUTTON BEEN RELEASED?
  37.             BNE      OUTTAHERE   ;  NOPE, TIME TO EXIT
  38.             MOVE.W   #$E8,6(A0)  ;  YES, NOW IT'S A LBUTTON UP
  39. OUTTAHERE   MOVE.L   A0,D0       ;  EXIT LIKE C WOULD - PTR IN D0
  40.             RTS
  41.  
  42.    END
  43.